/**
 * 本地的缓存读取工具
 * @export
 * @class LocalStorageBaseTool
 * @classdesc
 * 重构设计理由： 原来的设计是一个对象字面量的全局单例
 * 现在设计成一个实例化类的单例，目的是为了方便实现工具的拓展，尽可能避免直接更改源码
 * 应当尽可能少的修改 拓展原来的代码 避免源代码日益臃肿
 */
export default class LocalStorageBaseTool {
  constructor() {}

  save(key, value) {
    localStorage.setItem(key, JSON.stringify(value));
  }

  /** 这个预设值是必要的 有一些业务需要借助这样的默认返回值 */
  get(key, defaultValue = {}) {
    return JSON.parse(localStorage.getItem(key)) || defaultValue;
  }

  remove(key) {
    localStorage.removeItem(key);
  }

  clear() {
    localStorage.clear();
  }
}
